package visual.ontogrator.pkg2;

import java.util.ArrayList;
import java.util.List;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Gabriel
 */
public class Gene implements java.io.Serializable {
    private static final long serialVersionUID = 618829555449386788L;
   
    boolean validarNCBI=false;

    public boolean isValidarKEGG() {
        return validarKEGG;
    }

    public void setValidarKEGG(boolean validarKEGG) {
        this.validarKEGG = validarKEGG;
    }

    public boolean isValidarNCBI() {
        return validarNCBI;
    }

    public void setValidarNCBI(boolean validarNCBI) {
        this.validarNCBI = validarNCBI;
    }

    public boolean isValidarTAIR() {
        return validarTAIR;
    }

    public void setValidarTAIR(boolean validarTAIR) {
        this.validarTAIR = validarTAIR;
    }

    public boolean isValidarYEAST() {
        return validarYEAST;
    }

    public void setValidarYEAST(boolean validarYEAST) {
        this.validarYEAST = validarYEAST;
    }
    boolean validarTAIR=false;
    boolean validarKEGG=false;
    boolean validarYEAST=false;

  
    
    Double x,y;

    public Double getX() {
        return x;
    }

    public void setX(Double x) {
        this.x = x;
    }

    public Double getY() {
        return y;
    }

    public void setY(Double y) {
        this.y = y;
    }
  
  
   
    ArrayList<String> 
            Description = new ArrayList<>(),
            Gene_Model_Type = new ArrayList<>(),
            Other_names = new ArrayList<>(),
            Annotations = new ArrayList<>(),
            Definition = new ArrayList<>(),
            Module = new ArrayList<>(),
            Other_DBs = new ArrayList<>(),
            Pathway = new ArrayList<>(),
            Official_Symbol = new ArrayList<>(),
            Official_Full_Name = new ArrayList<>(),
            See_related = new ArrayList<>(),
            Gene_symbol = new ArrayList<>(),
            Gene_description = new ArrayList<>(),
            Primary_source = new ArrayList<>(),
            Locus_tag = new ArrayList<>(),
            Gene_type = new ArrayList<>(),
            RNA_name = new ArrayList<>(),
            RefSeq_status = new ArrayList<>(),
            Organism = new ArrayList<>(),
            Lineage = new ArrayList<>(),
            Also_known_as = new ArrayList<>(),
            Summary = new ArrayList<>(),
            Location = new ArrayList<>(),
            Sequence = new ArrayList<>(),
            ID_Protein = new ArrayList<>(),
            Standard_Name = new ArrayList<>(),
            Systematic_Name = new ArrayList<>(),
            Alias = new ArrayList<>(),
            Feature_Type = new ArrayList<>(),
            //Description = new ArrayList<>(),
            Name_Description = new ArrayList<>(),
            Chromosomal_Location = new ArrayList<>();

    public ArrayList<String> getSequence() {
        return Sequence;
    }

    public void setSequence(ArrayList<String> Sequence) {
        this.Sequence = Sequence;
    }
    
    String Nome_Lista;

    public String getNome_Lista() {
        return Nome_Lista;
    }

    public void setNome_Lista(String Nome_Lista) {
        this.Nome_Lista = Nome_Lista;
    }
    
    ArrayList<List<String>> array = new ArrayList<>();
    ArrayList<String> titulos = new ArrayList<>();
   
    public Gene() {
        titulos.add("Alias");
        titulos.add("Also_known_as");
        titulos.add("Annotations");
        titulos.add("Chromosomal_Location");
        titulos.add("Definition");
        titulos.add("Description");
        titulos.add("Feature_Type");
        titulos.add("Gene_description");
        titulos.add("Gene_Model_Type");
        titulos.add("Gene_symbol");
        titulos.add("Gene_type");
        titulos.add("ID_Protein");
        titulos.add("Lineage");
        titulos.add("Location");
        titulos.add("Sequence");
        titulos.add("Locus_tag");
        titulos.add("Module");
        titulos.add("Name_Description");
        titulos.add("Official_Full_Name");
        titulos.add("Official_Symbol");
        titulos.add("Organism");
        titulos.add("Other_DBs");
        titulos.add("Other_names");
        titulos.add("Pathway");
        titulos.add("Primary_source");
        titulos.add("RefSeq_status");
        titulos.add("RNA_name");
        titulos.add("See_related");
        titulos.add("Standard_Name");
        titulos.add("Summary");
        titulos.add("Systematic_Name");


        array.add(Alias);
        array.add(Also_known_as);
        array.add(Annotations);
        array.add(Chromosomal_Location);
        array.add(Definition);
        array.add(Description);
        array.add(Feature_Type);
        array.add(Gene_description);
        array.add(Gene_Model_Type);
        array.add(Gene_symbol);
        array.add(Gene_type);
        array.add(ID_Protein);
        array.add(Lineage);
        array.add(Location);
        array.add(Sequence);
        array.add(Locus_tag);
        array.add(Module);
        array.add(Name_Description);
        array.add(Official_Full_Name);
        array.add(Official_Symbol);
        array.add(Organism);
        array.add(Other_DBs);
        array.add(Other_names);
        array.add(Pathway);
        array.add(Primary_source);
        array.add(RefSeq_status);
        array.add(RNA_name);
        array.add(See_related);
        array.add(Standard_Name);
        array.add(Summary);
        array.add(Systematic_Name);

    }
    
    public String getGeneid(){
        String geneid="";
            for(int i=0;i<Other_DBs.size();i++){
                if(Other_DBs.get(i).startsWith("NCBI-GeneID:")){
                    try{geneid = Other_DBs.get(i+1)+"";}catch(Exception e){};
                }
            }
        
        return geneid;
    }
    public ArrayList<String> getArrayTitulo() {
     return titulos;
    }

    public ArrayList<List<String>> getArrayInfo() {
      return array;
    }
    public ArrayList<String> getAlias() {
        return Alias;
    }

    public void setAlias(ArrayList<String> Alias) {
        this.Alias = Alias;
    }

    public ArrayList<String> getChromosomal_Location() {
        return Chromosomal_Location;
    }

    public void setChromosomal_Location(ArrayList<String> Chromosomal_Location) {
        this.Chromosomal_Location = Chromosomal_Location;
    }

    public ArrayList<String> getFeature_Type() {
        return Feature_Type;
    }

    public void setFeature_Type(ArrayList<String> Feature_Type) {
        this.Feature_Type = Feature_Type;
    }

    public ArrayList<String> getName_Description() {
        return Name_Description;
    }

    public void setName_Description(ArrayList<String> Name_Description) {
        this.Name_Description = Name_Description;
    }

    public ArrayList<String> getSystematic_Name() {
        return Systematic_Name;
    }

    public void setSystematic_Name(ArrayList<String> Systematic_Name) {
        this.Systematic_Name = Systematic_Name;
    }


    public ArrayList<String> getAlso_known_as() {
        return Also_known_as;
    }

    public void setAlso_known_as(ArrayList<String> Also_known_as) {
        this.Also_known_as = Also_known_as;
    }

    public ArrayList<String> getAnnotations() {
        return Annotations;
    }

    public void setAnnotations(ArrayList<String> Annotations) {
        this.Annotations = Annotations;
    }

    public ArrayList<String> getDefinition() {
        return Definition;
    }

    public void setDefinition(ArrayList<String> Definition) {
        this.Definition = Definition;
    }

    public ArrayList<String> getDescription() {
        return Description;
    }

    public void setDescription(ArrayList<String> Description) {
        this.Description = Description;
    }

    public ArrayList<String> getGene_Model_Type() {
        return Gene_Model_Type;
    }

    public void setGene_Model_Type(ArrayList<String> Gene_Model_Type) {
        this.Gene_Model_Type = Gene_Model_Type;
    }

    public ArrayList<String> getGene_description() {
        return Gene_description;
    }

    public void setGene_description(ArrayList<String> Gene_description) {
        this.Gene_description = Gene_description;
    }

    public ArrayList<String> getGene_symbol() {
        return Gene_symbol;
    }

    public void setGene_symbol(ArrayList<String> Gene_symbol) {
        this.Gene_symbol = Gene_symbol;
    }

    public ArrayList<String> getGene_type() {
        return Gene_type;
    }

    public void setGene_type(ArrayList<String> Gene_type) {
        this.Gene_type = Gene_type;
    }

    public ArrayList<String> getID_Protein() {
        return ID_Protein;
    }

    public void setID_Protein(ArrayList<String> ID_Protein) {
        this.ID_Protein = ID_Protein;
    }

    public ArrayList<String> getLineage() {
        return Lineage;
    }

    public void setLineage(ArrayList<String> Lineage) {
        this.Lineage = Lineage;
    }

    public ArrayList<String> getLocation() {
        return Location;
    }

    public void setLocation(ArrayList<String> Location) {
        this.Location = Location;
    }

    public ArrayList<String> getLocus_tag() {
        return Locus_tag;
    }

    public void setLocus_tag(ArrayList<String> Locus_tag) {
        this.Locus_tag = Locus_tag;
    }
    
    public void addLocus_tag(String locus) {
        this.Locus_tag.add(locus);
    }
    

    public ArrayList<String> getModule() {
        return Module;
    }

    public void setModule(ArrayList<String> Module) {
        this.Module = Module;
    }

    public ArrayList<String> getOfficial_Full_Name() {
        return Official_Full_Name;
    }

    public void setOfficial_Full_Name(ArrayList<String> Official_Full_Name) {
        this.Official_Full_Name = Official_Full_Name;
    }

    public ArrayList<String> getOfficial_Symbol() {
        return Official_Symbol;
    }

    public void setOfficial_Symbol(ArrayList<String> Official_Symbol) {
        this.Official_Symbol = Official_Symbol;
    }

    public ArrayList<String> getOrganism() {
        return Organism;
    }

    public void setOrganism(ArrayList<String> Organism) {
        this.Organism = Organism;
    }

    public ArrayList<String> getOther_DBs() {
        return Other_DBs;
    }

    public void setOther_DBs(ArrayList<String> Other_DBs) {
        this.Other_DBs = Other_DBs;
    }

    public ArrayList<String> getOther_names() {
        return Other_names;
    }

    public void setOther_names(ArrayList<String> Other_names) {
        this.Other_names = Other_names;
    }

    public ArrayList<String> getPathway() {
        return Pathway;
    }

    public void setPathway(ArrayList<String> Pathway) {
        this.Pathway = Pathway;
    }

    public ArrayList<String> getPrimary_source() {
        return Primary_source;
    }

    public void setPrimary_source(ArrayList<String> Primary_source) {
        this.Primary_source = Primary_source;
    }

    public ArrayList<String> getRNA_name() {
        return RNA_name;
    }

    public void setRNA_name(ArrayList<String> RNA_name) {
        this.RNA_name = RNA_name;
    }

    public ArrayList<String> getRefSeq_status() {
        return RefSeq_status;
    }

    public void setRefSeq_status(ArrayList<String> RefSeq_status) {
        this.RefSeq_status = RefSeq_status;
    }

    public ArrayList<String> getSee_related() {
        return See_related;
    }

    public void setSee_related(ArrayList<String> See_related) {
        this.See_related = See_related;
    }

    public ArrayList<String> getStandard_Name() {
        return Standard_Name;
    }

    public void setStandard_Name(ArrayList<String> Standard_Name) {
        this.Standard_Name = Standard_Name;
    }

    public ArrayList<String> getSummary() {
        return Summary;
    }

    public void setSummary(ArrayList<String> Summary) {
        this.Summary = Summary;
    }
}
